package com.yan.springcloud.service;

import com.yan.springcloud.pojo.Dept;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author ：Yan Guang
 * @date ：Created in 2020/12/1 12:13
 * @description：
 */

//降级，实现这个里面的方法
@Component
public class DeptClientServiceFallBackFactory implements FallbackFactory {
    //这个方法的任务就是当产生回调的时候（当我们关闭服务器的时候），替换掉原来类里面所有的方法(采取客户端自己的方法)
    @Override
    public DeptClientService create(Throwable cause) {
        return new DeptClientService() {
            @Override
            public Dept queryById(Long id) {
                Dept dept = new Dept();
                dept.setDeptno(id);
                dept.setDname("没有对应的信息客户端提供降级信息，该服务已经关闭");
                dept.setDb_sourse("没有数据~");
                return dept;
            }

            @Override
            public List<Dept> queryAll() {
                return null;
            }

            @Override
            public Boolean addDept(Dept dept) {
                return null;
            }
        };
    }
}
